a18c01e8031e7f36942ae8ce8fa2ff5fa15efe3e,app/src/main/java/org/mythtv/android/data/repository/VideoDataRepository.java,VideoDataRepository,getVideoListByContentTypeAndSeries,#String#String#,137
Before Change
final VideoDataStore videoDataStore = videoDataStoreFactory.createCategoryDataStore( contentType );
return videoDataStore.getSeriesInCategory( contentType, series )
.subscribeOn( Schedulers.io() )
.observeOn( AndroidSchedulers.mainThread() )
.doOnError( throwable -> Log.e( TAG, "getVideoListByContentTypeAndSeries : error", throwable ) )
.map( entities -> {
try {
return MediaItemDataMapper.transformVideos( entities );
} catch( UnsupportedEncodingException e ) {
Log.e( TAG, "getVideoListByContentTypeAndSeries : error", e );
}
return new ArrayList<>();
});
}
@SuppressWarnings( "Convert2MethodRef" )
After Change
Log.d( TAG, "getVideoListByContentTypeAndSeries : contentType=" + contentType + ", series=" + series );
final VideoDataStore videoDataStore = videoDataStoreFactory.createCategoryDataStore( contentType );
final ContentDataStore contentDataStore = this.contentDataStoreFactory.createMasterBackendDataStore();
Observable<List<VideoMetadataInfoEntity>> videoEntities = videoDataStore.getSeriesInCategory( contentType, series )
.subscribeOn( Schedulers.io() )
.observeOn( AndroidSchedulers.mainThread() )
.flatMap( Observable::from )
.toList();
Observable<List<LiveStreamInfoEntity>> liveStreamInfoEntities = contentDataStore.liveStreamInfoEntityList( null )
.subscribeOn( Schedulers.io() )
.observeOn( AndroidSchedulers.mainThread() );
Observable<List<VideoMetadataInfoEntity>> videos = Observable.zip( videoEntities, liveStreamInfoEntities, ( videoEntityList, list ) -> {
if( null != list && !list.isEmpty() ) {
for( VideoMetadataInfoEntity videoEntity : videoEntityList ) {
for( LiveStreamInfoEntity liveStreamInfoEntity : list ) {
if( liveStreamInfoEntity.getSourceFile().endsWith( videoEntity.getFileName() ) ) {
videoEntity.setLiveStreamInfoEntity( liveStreamInfoEntity );
}
}
}
}
return videoEntityList;
});
return videos
.doOnError( throwable -> Log.e( TAG, "getVideoListByContentTypeAndSeries : error", throwable ) )
.map( entities -> {
try {
return MediaItemDataMapper.transformVideos( entities );
} catch( UnsupportedEncodingException e ) {
Log.e( TAG, "getVideoListByContentTypeAndSeries : error", e );
}
return new ArrayList<>();
});
}
@SuppressWarnings( "Convert2MethodRef" )